Method and system for search refinement

ABSTRACT

A search refinement method and system to select items from a plurality of items using a user device connected via the internet to a server apparatus. The server apparatus includes a database of items and item attributes. Images of a first subset of the items are transmitted to the user device where they are presented on a display. A change indication selected by a user of the user device is received by the server apparatus, the change indication including at least one of an attribute selection and a reference item selected from the first subset. Responsive to receiving the change indication, an item score is computed for each of the items based on the item&#39;s attributes and the change indication. Images of a second subset of the items are presented on the user device. Each time the user initiates a change indication, another subset is presented on the user device, and the user can iteratively refine the search by finding items similar to the items represented by the change indication.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims the benefit of U.S. Provisional PatentApplication No. 61/906,072 filed Nov. 19, 2013 titled “METHOD AND SYSTEMFOR SEARCH REFINEMENT”, the disclosure of which is expresslyincorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The disclosure relates generally to a search system and a method. Moreparticularly, the disclosure relates to a system and a method forrefining search results.

BACKGROUND OF THE DISCLOSURE

When internet shopping, people often find items that they like but wishthey could change. For instance, a woman might like the cut of a dress,but she might like it even more if the dress were longer and sleeveless.Or perhaps she would like a similar dress with a different back orcolor. Given the large number of dress variables and correspondingoptions, it can be extremely challenging and time consuming for her toconduct additional searches to find the best alternatives. There is aneed to more effectively help individuals find the items that mostclosely match what they are looking for.

SUMMARY

A search refinement method and system are disclosed. The method may beimplemented with the system, which may include a processing device andprocessing instructions embedded in one or more non-transitory computerreadable medium and structured to cause the processing device toimplement the method disclosed herein. The method enables users to finda desired item in a large pool of items by finding similar items basedon explicit or implicit item attribute selections, more quickly thanwith traditional filtering techniques.

In embodiments disclosed herein, the method comprises establishing aninternet connection between the processing device and a user device;accessing a database of items and item attributes; transmitting to theuser device images of a first subset of the items and user interfaceinstructions structured to render the images on the user device; andreceiving via the internet connection a change indication selected by auser of the user device. The change indication includes at least one ofan attribute selection and a reference item selected from the firstsubset. The method further comprises, responsive to receiving the changeindication, computing an item score for each of the items based on theitem's attributes and the change indication; forming, based on the itemscores, a second subset of the items; and serving user interfaceinstructions structured to render images of the second subset of theitems on the user device.

In embodiments disclosed herein, the method comprises accessing arecommendation set of items having item attributes; receiving from auser an indication of a reference item, the reference item havingreference item attributes; receiving an item attribute selection fromthe user; and computing item scores for each of the items based on theitem attributes, the item attribute selection, and the reference itemattributes. The method further comprises ranking the items based on theitem scores; and serving user interface instructions for renderingimages of at least a subset of the items on the user device, the atleast a subset of the items selected according to the ranking of theitems.

In embodiments disclosed herein, a refinement system comprises adatabase of items and item attributes; and user interface instructionsoperable in a user device and structured to cause the user device toreceive images of a first subset of the items and of a second subset ofthe items, to present the images, and to transmit a change indicationselected by a user of the user device. The change indication includes atleast one of an attribute selection and a reference item selected fromthe first subset. The system further comprises a server apparatusincluding a processing device, one or more non-transitory computerreadable medium, and a plurality of modules including a communicationmodule structured to establish an internet connection between theprocessing device and a user device, to transmit the images of the firstsubset of items and of the second subset of items, and to receive thechange indication; a database interface module structured to access thedatabase of items and item attributes; and a user interface modulestructured to generate the user interface instructions. The systemfurther comprises a processing module structured to compute an itemscore for each of the items based on the item's attributes and thechange indication; and to form, based on the item scores, the secondsubset of the items.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned and other disclosed features, and the manner ofattaining them, will become more apparent and will be better understoodby reference to the following description of disclosed embodiments takenin conjunction with the accompanying drawings, wherein:

FIGS. 1 and 1A are block diagrams of a search refinement systemaccording with an example set forth in the disclosure;

FIGS. 2 to 6 are screenshots generated by instructions provided by arefinement application of the search refinement system of FIG. 1;

FIGS. 7 and 8 are flowcharts of a search refinement method accordingwith examples set forth in the disclosure;

FIGS. 9 to 13 are screenshots generated by instructions provided byanother embodiment of a search refinement application in accordance witha search refinement method set forth in the disclosure and describedwith reference to FIG. 14; and

FIG. 14 is a flowchart of an embodiment of a search refinement methodaccording with examples set forth in the disclosure.

Corresponding reference characters indicate corresponding partsthroughout the several views. Although the drawings representembodiments of various features and components according to the presentinvention, the drawings are not necessarily to scale and certainfeatures may be exaggerated in order to better illustrate and explainthe present invention. The exemplification set out herein illustratesembodiments of the invention, and such exemplifications are not to beconstrued as limiting the scope of the invention in any manner.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE DISCLOSURE

For the purposes of promoting an understanding of the principles of theinvention, reference will now be made to the embodiments illustrated inthe drawings, which are described below. The embodiments disclosed beloware not intended to be exhaustive or limit the invention to the preciseform disclosed in the following detailed description. Rather, theembodiments are chosen and described so that others skilled in the artmay utilize their teachings. It will be understood that no limitation ofthe scope of the invention is thereby intended. The invention includesany alterations and further modifications in the illustrated devices anddescribed methods and further applications of the principles of theinvention which would normally occur to one skilled in the art to whichthe invention relates.

A search refinement method and a system are disclosed. The method isexecutable at least in part by a processing device according toprocessing instructions embedded in one or more non-transitory computerreadable medium. In one embodiment, the method is configured foraccessing a data-structure including a plurality of items and generatinginstructions to generate, in a user device, graphical displays andcontrol objects configured to assist a user in refining item selections.

Also presented herein are embodiments of a non-transitory computerreadable medium and a system including the non-transitory computerreadable medium, the non-transitory computer readable medium havingprocessing instructions embedded therein for implementing the foregoingmethods when processed by a processing device. In addition to thenon-transitory computer readable medium and the processing instructions,the system includes the processing device.

The search refinement may also be based on explicit user preferencedata. Explicit user preference data may be obtained with a system andmethod for soliciting information as described in commonly owned U.S.patent application Ser. No. 13/795,168, filed Mar. 12, 2013, titled“System and Method for Eliciting Information,” said applicationincorporated herein by reference in its entirety.

FIGS. 1 and 1A are block diagrams of an embodiment of a searchrefinement system 100. System 100 includes server apparatus 102including a processing device 104, a non-transitory computer readablemedium 110 having stored therein a refinement server software 120, arefinement application 130, and a database 140. While exemplified hereinas single apparatus, server apparatus 102 may comprise an integratedsystem or a distributed system. Processing device 104 may comprise oneor several processing devices working in concert. Similarly,non-transitory computer readable storage medium 110 may comprise one orseveral devices configured to store processing instructions and data,including harddrives, discs, read-only-memory, random-access-memory, andany other non-transitory storage device. Refinement application 130includes a plurality of modules described below. Database 140 includesdata-structures for storing information including a plurality of itemsand item attribute data 142. Exemplary item attribute data 142 includingitem attribute vectors 144 and attribute values 146 are shown.

Server apparatus 102 includes a communication module 132 structured toestablish an internet connection between processing device 104 and auser device 180. As used herein, modules may comprise instructionsstored in memory or implemented in a circuit or implemented in bothhardware and software. Exemplary circuits include integrated circuits,and electronic devices mounted on circuit boards. Communication module132 also transmits images 124 of subsets of items to user device 180,which may be read from database 140 by a database interface module 134.Database interface module 134 may a module of refinement application130. Communication module 132 also receives user instructions,selections, and choices, which refinement software 130 processes toimplement embodiments of the search refinement method described herein.Exemplary selections include a change indication 126, and a referenceitem selected from subsets of items. Server apparatus 102 communicateswith user device 180 via the Internet, wirelessly or thorough a wiredconnection, as is well known in the art. User device 180 may be referredto as a “client device”.

Server apparatus 102 also includes a user interface module 136structured to generate user interface instructions 122, or code,operable in user device 180 and structured to cause user device 180 toreceive images of a first subset of the items and of a second subset ofthe items; to present the images; and to transmit a change indicationselected by a user of the user device. User interface module 136 may amodule of refinement application 130. User device 180 includes a visualdisplay 182 to present thereon the images and control objects. Exemplaryuser interface instructions 122 include hypertext markup language (HTML)instructions for creating web pages and other information that can bedisplayed with a web browser resident in user device 180. Exemplary userdevices include computers, tablets, mobile phones and any other deviceincluding hardware capable of receiving HTML instructions and presentingweb pages with a visual display.

Server apparatus 102 also includes a processing module 138 structured tocompute an item score for each of the items based on the item'sattributes and the change indication; and to form, based on the itemscores, the second subset of the items. Processing module 138 is amodule of refinement application 130.

FIGS. 2-6 are screenshots of web pages presented on a user devicedisplay generated by user interface instructions provided by refinementapplication 130. FIG. 2 illustrates a screenshot 200 including anattributes panel 210 including attribute drop-boxes 220 configured toenable a user to select attributes. The user selects attributes torefine the search. The items presented to the user are then changed,either by excluding items through filtering or lack of similarity. Inone example, the plurality of items are filtered based on the userselections.

In another example, a subset of the plurality of items that haveattributes similar to those of the selections is identified, and theuser can further refine the search by making further changes to the setof similar items. Screenshot 200 also includes a plurality of itempanels 230 and control objects configured to refine item selections, asexplained below.

In one embodiment, a search begins when the user selects an itemcategory to indicate the kind of item the user wishes to find. Exemplaryitem categories include dresses, work clothes, jewelry and any othercategory of merchandise. In the present embodiment, a website dedicatedto a category, dresses, is described. Thus, in the present embodimentthe user selects a category by accessing a website named “Dressometry”.The website is hosted by refinement server software 120. It should beunderstood that the system and method presented herein are applicable toany category. In one variation of the present embodiment, upon accessingthe website, the refinement system presents items from the plurality ofitems. The user selects one item, referred to as the “reference item”.The search refinement process is then performed by the refinementsystem, with user input, to find an item similar to the reference item.The plurality of items have previously been determined and categorizedduring setup of the refinement system. The present variation isdiscussed in additional detail with reference to FIGS. 9 and 13. Anothervariation of the present variation, referred to as “design your owndress”, is discussed with reference to FIGS. 9 to 14. Of course, themethod is applicable to any merchandise category.

The plurality of items represents all the items that may be presented toa user during the search refinement process, and may be referred to as a“recommendation set”. An item has attributes, and the attribute dataincludes attribute values corresponding to each attribute of each item.The attribute values for a particular item comprise an item attributevector. In the present embodiment, before the search refinement processis implemented, the item attribute data is compiled by obtaininginformation about items in a particular category, e.g. dresses, anddetermining the attributes for each attribute category of each item.Dress attribute categories include neck style, sleeve style, length,bust style, waist fit, hips fit, bottom style, back style, primarycolor, highlight color, brand, price occasion etc. An item may haveattribute categories and subcategories. Each subcategory may be furthersubdivided to provide any desired level of refinement granularity.Exemplary neck style subcategories include heart neck, crew neck,V-neck, straight neck, collared, turtle neck, and asymmetric. Exemplarysleeve style subcategories include long sleeved, three quarters sleeved,short sleeved, sleeveless, one shoulder, halter and strapless.

Each item is categorized as true or false for each subcategory. For someattribute categories (such as occasion), multiple subcategories could betrue. For other attribute categories (such as length), only onesubcategory could be true. The set of binary values (1s and 0s) thatcharacterize an item are transformed into the item attribute vector. Theattribute values are obtained by normalizing the binary values acrossall of the recommendation set. First, calculate the average and standarddeviation of the 1s and 0s for each attribute subcategory across all ofthe recommendation set (e.g. the average score for color-black acrossall dresses is 0.2). Then, for each item in the recommendation set, andeach attribute subcategory, subtract the average from the binary valueand divide the result by the standard deviation. The item attributevectors are then stored in the item attribute data.

In one variation, attribute categories and subcategories are weighedbased on preference data. For example, the preference data may indicatethat one attribute category is more important than another. To scale anattribute category, the attribute values for the category are multipliedby a preference weight. For example, the color of a dress may be moreimportant than the sleeve type, so the color attribute category may bemultiplied by a preference weight of X to represent importance. X mayequal 2, for example, to represent higher importance, or 0.5, forexample, representing lower importance.

In another variation, attribute values other than binary values areselected to represent known relationships between attributesubcategories. For a short sleeve dress the vector would be (−0.5, 0, 1,−1, −0.5, −1, −1, −1, −1, −1) to reflect a relationship, for example,between short sleeve and sleeveless, and short sleeve and off theshoulder. These values would then be normalized across all the items inthe recommendation set. Table 1 below illustrates an example of suchrelationship information:

TABLE 1 Sleeves_(—) Off_the_(—) SLEEVES Sleeves_LongSleevesSleeves_ThreeQuarter Sleeves_ShortSleeves Sleeves_OneSleeve ShoulderSleeves_LongSleeves 1 0 −0.5 −1 −1 Sleeves_ThreeQuarter 0 1 0 −1 −1Sleeves_ShortSleeves −0.5 0 1 −1 −0.5 Sleeves_OneSleeve −1 −1 −1 1 −1Sleeves_Off_the_Shoulder −1 −1 −0.5 −1 1 Sleeves_Cutout −1 −1 −1 −1 −0.5Sleeves_Sleeveless −1 −1 −1 −1 −1 Sleeves_Straps −1 −1 −1 −1 −1Sleeves_Halter −1 −1 −1 −1 −1 Sleeves_Strapless −1 −1 −1 −1 −1 SLEEVESSleeves_Cutout Sleeves_Sleeveless Sleeves_Straps Sleeves_HalterSleeves_Strapless Sleeves_LongSleeves −1 −1 −1 −1 −1Sleeves_ThreeQuarter −1 −1 −1 −1 −1 Sleeves_ShortSleeves −1 −1 −1 −1 −1Sleeves_OneSleeve −1 −1 −1 −1 −1 Sleeves_Off_the_Shoulder −0.5 −1 −1 −1−1 Sleeves_Cutout 1 −1 −1 −1 −1 Sleeves_Sleeveless −1 1 0 −0.5 −1Sleeves_Straps −1 0 1 −1 −0.5 Sleeves_Halter −1 −0.5 −1 1 −1Sleeves_Strapless −1 −1 −0.5 −1 1

Referring again to FIG. 2, the user can activate attribute drop-boxes220 to filter items in the recommendation set or select similar items,depending on the programming for each attribute. In one example,attribute categories may be used to filter and to refine the search. Inanother example, some attribute categories are only used to filter therecommendation set and cannot be used to refine the search. In thepresent embodiment, the attribute categories in attribute panel 210include color, occasion, level of scandal and price. The attributecategory “level of scandal” can filter but cannot be used to refine thesearch. In this context, refining the search refers to finding itemssimilar to reference items. By contrast, filtering excludes items basedon the filter criteria. Thus, a selected “level of scandal” such as “getnoticed” causes the system to exclude all items except items satisfyingthe “get noticed” level of scandal. If the “level of scandal” were usedas a refinement attribute, items would be selected by multiplication ofthe reference item vector (modified by the chosen “level of scandal”attribute (e.g. “get noticed”)) by the item attribute vectors to computescores which determine similarity. It would be mathematically possiblefor an item which does not satisfy the “get noticed” attribute to stillbe shown to the user, where such item would be excluded if the sameattribute were used as a filter.

Any number of filtering criteria may be used. As shown in screenshot200, criteria include color, occassion, level of scandal and price. Ifthe user specifies that the item price should be below $50, then onlyitems that are priced strictly less than $50 are presented. With respectto dressess, if the user specifies that the dress color should be black,then only black dresses are presented.

Screenshot 200 further illustrates a plurality of item panels 230, eachincluding an item button 232 showing an image of the item, and aplurality of control objects including an item adjustment button 240, anitem selection button 250, and a shopping cart button 260. One of theitem buttons includes a selected item image 270 to represent that a userselected that item to continue processing. The item identified bynumeral 270 becomes the reference item in the subsequent refinementprocess. The user may select the item by activating the correspondingitem button 232, item adjustment button 240, or item selection button250. The user may also activate a shopping cart button 260 to purchasethe selected item. Use of shopping cart buttons to purchase items iswell known in the art and will not be further described.

If the user activates a drop-box 220, the refinement process includesfiltering the recommendation set accordingly (or finding similar items),sorting the items, and serving a web page for the user device to presentthe filtered and sorted items.

If the user activates item selection button 250, the refinement processincludes re-scoring the items based on the selection, sorting there-scored items, and serving a web page for the user device to presentthe re-scored and sorted items. A selected item image 270 may also beshown to enable the user to build a “refinement history”. A partialscreenshot 300 of an exemplary web page rendered after activation of anitem selection button 250 is shown in FIG. 3. Screenshot 300 illustratesa filtering panel 310 which is similar to filtering panel 210, with theaddition of the image of the image of the reference item. A plurality ofitem panels 330 are shown. Item panels 330 are similar to item panels230, except that the items have been re-sorted based on the selection ofthe reference item by the user.

If the user activates an item button 232 or an item adjustment button240, the refinement process includes re-scoring the items based on theselection, sorting the re-scored items, and serving a web page for theuser device to present the re-scored and sorted items for refining thesearch. A partial screenshot 400 of an exemplary web page rendered afteractivation of an item adjustment button 240 is shown in FIG. 4.

Screenshot 400 illustrates selected item image 270, a navigation panel410 including navigation buttons including “purchase now”, “add tocart”, and “back to browsing”. The “purchase now” button redirects thebrowser to the website of the merchant of the item. The functions of the“add to cart”, and “back to browsing” buttons are self-explanatory andwell known navigation controls. Screenshot 400 also illustrates anadjustments panel 420 showing a plurality of attribute subcategorydrop-boxes 422 which the user can activate to adjust a subcategory andthereby refine the search. On the lower portion of screenshot 400 areshown a plurality of item panel 430, including item panels 441-446sorted based on the user's selection of the reference item.

FIGS. 5 and 6 are partial screenshots 500 and 600 of exemplary web pagesfurther illustrating the refinement process. Screenshot 500 illustratesthe sub-category choices 420 presented by drop-box 522 corresponding tolength. Screenshot 500 illustrates that the user selected “almost knees”in the sub-category “length”. On the lower portion of screenshot 600 areshown item panels 641-646 refined and sorted based on the selection. Itcan be seen that the items shown in item panels 442, 443 and 445 (shownin FIG. 5) are full-length dresses and none of the items shown in itempanels 641-646 are full-length dresses. The items shown in item panels641-646 are determined based on the combination of the reference itemand the sub-category selection. The refinement process will now bedescribed in more detail below.

The reference item has an attribute vector, which is referred to for thereference item as the “reference vector”. When the user selectsattributes to change, the system generates a new vector including theselected (changed) attributes and the attributes of the reference itemthat remain unchanged. The new vector is referred to as the “adjustedattribute vector”. For example, if the reference item is a red longsleeve dress that is short in length, and the user would like a blackdress instead, then the color subcategory of the reference vector isadjusted to reflect the black color. The old value for red and black (1,−1) may be changed to (1, 100) to arrive at an adjusted attribute vector{100, 1, −1, 0, 1, −1, −1, 0, 1} as shown in example 1 below.

Example 1

Adjusted Reference Attribute Category Subcategory Vector Vector ColorBlack −1 100 Color Red 1 1 Color White −1 −1 Sleeve Short Sleeve 0 0Sleeve Long Sleeve 1 1 Sleeve Sleeveless −1 −1 Length Floor length −1 −1Length Knee length 0 0 Length Short 1 1

In an alternative example, the old value for red and black (1, −1) maybe changed to (−1, 1) to arrive at an adjusted attribute vector {1, −1,−1, 0, 1, −1, −1, 0, 1} as shown in example 2 below.

Example 2

Adjusted Reference Attribute Category Subcategory Vector Vector ColorBlack −1 1 Color Red 1 −1 Color White −1 −1 Sleeve Short Sleeve 0 0Sleeve Long Sleeve 1 1 Sleeve Sleeveless −1 −1 Length Floor length −1 −1Length Knee length 0 0 Length Short 1 1

The refinement system may enable a user to adjust multiple attributes,simultaneously or step-wise, in different attribute categories asillustrated by example 3, where color and length have been changed.

Example 3

Adjusted Reference Attribute Category Subcategory Vector Vector ColorBlack −1 100 Color Red 1 1 Color White −1 −1 Sleeve Short Sleeve 0 0Sleeve Long Sleeve 1 1 Sleeve Sleeveless −1 −1 Length Floor length −1 −1Length Knee length 0 100 Length Short 1 1

The refinement system may also enable a user to adjust multipleattributes simultaneously within the same attribute category asillustrated by example 4, where color black and white have been changed.

Example 4

Adjusted Reference Attribute Category Subcategory Vector Vector ColorBlack −1 100 Color Red 1 1 Color White −1 100 Sleeve Short Sleeve 0 0Sleeve Long Sleeve 1 1 Sleeve Sleeveless −1 −1 Length Floor length −1 −1Length Knee length 0 0 Length Short 1 1

After the refinement system receives instructions corresponding to theuser's adjustments, the refinement system calculates scores for eachitem in the recommendation set by multiplying the adjusted attributevector by each of the item attribute vectors. The items are then rankedbased on the scores and the top ranked items are presented to the user.The user may then choose, among other choices, an item. The selecteditem may be a reference item for another round of adjustments. Theprocess may be repeated by the user indefinitely.

The refinement system may also enable a user to stipulate that theydon't want an attribute. Example 5 below shows where the user hasstipulated not Short Sleeves.

Example 5

Adjusted Reference Attribute Category Subcategory Vector Vector ColorBlack −1 100 Color Red 1 1 Color White −1 100 Sleeve Short Sleeve 0 −100Sleeve Long Sleeve 1 1 Sleeve Sleeveless −1 −1 Length Floor length −1 −1Length Knee length 0 0 Length Short 1 1

In another embodiment, described further with reference to FIGS. 9-14,the system does not require the user to initially choose a referenceitem. Instead, the user can input attributes of a desired reference itemand an adjusted attribute vector is constructed from the attributeinputs (such as shape and color). Then the recommendation set is orderedand the top matches are presented. The user can then input newrefinements and new options are presented.

The search refinement method may also be based on preference data.Preference data may be obtained with a system and method for solicitinginformation as described in commonly owned U.S. patent application Ser.No. 13/795,168 filed Mar. 12, 2013, titled “System and Method forEliciting Information,” said application incorporated herein byreference in its entirety. The preference data may comprise userpreference data and item preference data. To incorporate preferenceinformation in the refinement method, the item attribute vectors areaugmented with preference attributes derived by reduced dimensionalityanalysis. For example, if the item attribute vectors have eightattributes, and there are four preference attributes in the preferencedata, the attribute vectors can be adjusted by adding the preferenceattributes to form twelve-attribute attribute vectors. The scores andrankings are computed as before, except that the adjusted, or enhanced,attribute vectors are used in the computations.

In a further embodiment, the user's input is saved by the system as aquery for future use. The query may include the reference item, filtercriteria, and or alteration criteria. The query may be run to return theuser to the prior refinement stage. For example, the user may name thequery and, upon visiting the site again, may recall the query by name inany manner known in the art. The query may also be used by the system toautomatically trigger events. Exemplary events include transmitting anemail message, text message or social media message. To trigger theevent, the system periodically runs the query and determines if theresult set of items is different from previous results. The system thensends a message based on the differences. For example, the new resultset may show that one of the high-score items is no longer available orthat a new high score item has become available. If a pricing filter isincluded, the email may indicate if the new high score item is indicateddue to a price drop, which allows a previously filtered item to beincluded in the results. In one variation, an event is triggered whennew items whose score exceeds a predetermined threshold are identifiedby the new result set. For example, the threshold may be set to 90% ofthe score of the reference item, such that only items with thepredetermined level of similarity trigger events.

In a yet further embodiment, the system compiles usage informationincluding, for example, how many users access the site, how many itemselections they make, and what they would like to change about items.The system may compile, with respect to a given item, 1) how many peopleviewed the item; 2) for each attribute category, what percentage of thetime is it requested to change that attribute (e.g. 30% of the users whoviewed the dress would like to change the length); and 3) for eachattribute sub-category, what percentage of the time is it requested tochange the item to include that sub-category attribute (e.g. 5% of userswho viewed the dress wanted it to be a floor length dress instead ofknee length). In a variation of a merchandizing method, the compiledchange data (which may also be referred as adjustment or alterationdata) is exported to a merchant. The merchant may then make supply andpricing decisions to correlate the user's preferences inferrable fromthe change data with the merchant's product lines. Systems and methodsfor generating pricing information are described in commonly owned U.S.patent application Ser. Nos. 13/905,625 and 13/905,645, both filed May30, 2013 and titled “System and Method for Generating Information,” saidapplications incorporated herein by reference in their entirety.

In a still further embodiment, the system receives merchandize updatesfrom merchants. The merchandize updates may include attributes andmerchandizing criteria such as availability and discounts. Based on themerchandize updates, the system may transmit messages to users based onthe execution of queries as described above. Even further, the systemmay utilize user preference data and send the messages to persons havingpreferences similar to the users whose queries triggered the events.Alternatively, the system may export the lists of similar users tomerchants so that the merchants can send the messages.

FIG. 7 is a flowchart 700 of an embodiment of a refinement methodimplemented with a refinement system, such as refinement system 100. At702, the system serves code configured to present items, filters andalter/mark buttons. The code may be HTML code executable by a browser ina client device to present the items, filters and alter/mark buttons, orany other objects described herein. At 704, the system receives userinstructions. The user may input instructions via a user device, and theuser device may transmit the instructions to the system. Theinstructions include whether to change items, put the items in thecloset, or mark items, and if to change items, the user's attributeselections.

If the instructions are to filter, at 710 the system filters the itemsbased on the selected filter criteria. After filtering, the systemserves code as described with reference to 702.

If the instruction is to adjust an item, at 720 the system serves codeconfigured to present items, adjustment options, and other choices. Theother choices may include returning to the main web page, purchasing anitem, etc. At 724, the system receives an alter option. At 728, thesystem re-scores the items based on the selected adjustment to refinethe results. The system then serves code configured to present therefined results. The system then proceeds to 720, at which time the usermay refine again or may proceed in a different manner. As used herein,the terms “adjust”, “alter”, “change”, and “filter” are used to indicatea change in the items presented to the user based on user selections,e.g. from a first subset of items to a second subset of items. “Adjust”and “alter” are interchangeable with “change”. “Adjustment selection” isanalogous with “change indicia”.

If the instruction is to mark, at 730 the system re-scores the itemsbased on the selected item (e.g. reference item). In re-scoring, theitems most similar to the reference item receive higher scores. Thesystem then serves code configured to present the re-scored items. Thesystem then proceeds to 720, at which time the user may adjust the itemsagain or may proceed in a different manner. At 734, the system receivesuser choices and proceeds to, for example, 736 to redirect the user to avendor website, 738 to add the selected item to the shopping cart, and740 to browse items.

FIG. 8 is a flowchart 800 illustrating in further detail an algorithmexecutable after 724, where the system receives an adjustment selection.At 802, the system calculates a new vector based on the item selectionand the adjustment selection. The system does so by substituting theattribute value of the adjustment selection for the correspondingattribute of the reference item, thus creating a new reference vector.At 804, the system multiplies the new vector by the item vectors toobtain item scores weighed by the new vector. Optionally, the system mayweigh item scores with a preference vector. At 806, the system servescode to present items.

In a further embodiment, a search refinement method executable at leastin part by a processing device according to processing instructionsembedded in one or more non-transitory computer readable medium isprovided. The method comprises accessing a recommendation set of itemshaving item attributes; receiving from a user an indication of areference item, the reference item having reference item attributes;receiving an item attribute selection from the user; computing itemscores for each of the items based on the item attributes, the itemattribute selection and the reference item attributes; ranking the itemsbased on the item scores; and serving user interface instructions forrendering images of at least a subset of the items on the user device,the at least a subset of the items selected according to the ranking ofthe items.

In one variation thereof, the indication of a reference item is an imageof the item transmitted by the user. In one example, the user snaps aphotograph of the item with a mobile device and uploads the image to thesystem. The system may examine the image and automatically determinecertain or all the attributes. If the item is a dress, the system mayidentify a body model and comparing the model to the image determine ifthe dress is long or short, sleeved or sleeveles, etc. Alternatively oradditionally, the system may perform image analysis to identify asimilar item in the recommendation set and use attributes of the similaritem to supplement or complete the attributes vector of the item. Ofcourse the system may also determine color. In another example, theuploaded image is examined by a person who categorizes the item.

In one variation thereof, the system receives an item attributeselection from the user by examining text. In one example, the usersnaps a photograph of the item with a mobile device and uploads theimage to the system. For example, the user may send the photograph withan email or text message. Before transmitting the message, the user maytype the desired adjustment attribute. For example, the user mayphotograph a red dress and type “black”. The system would then refinethe search by identifying dresses similar to the uploaded dress image,but in black color.

In a further variation thereof, the system serves code to present imagesand adjustment options so that the user does not need to select an itemand then select an adjustment after the items are re-sorted based on thereference item (e.g. the selected item). Receiving from a user anindication of a reference item is performed by receiving the itemselection from a plurality of images presented to the user, andreceiving an item attribute selection from the user is performed byreceiving the attribute selection from a plurality of choices presentedto the user. The images of the items and the attribute choices may bepresented concurrently. The other method steps are performed asdescribed above.

FIGS. 9-13 are screenshots of web pages generated by user interfaceinstructions, or code, provided by a further embodiment of refinementapplication 130. FIG. 9 illustrates a screenshot 900 including a shopdresses button 902, a design your own dress (DYOD) button 904, a closetbutton 906, and a attribute panel 910 including filters 912, 914, and916. Exemplary filters include formal dresses, dresses in a given pricerange, day dresses, and any other category that serves to separate thegenus of dresses into large species. Screenshot 900 further includesattribute drop-boxes 920 configured to enable a user to selectattributes on which to further refine a search by filtering or findingitems having similar attributes. The subset of items presented to theuser is then refined based on the user selections to more closelysatisfy the user's desires. Screenshot 900 also presents a plurality ofitem panels 930 and control objects configured to refine itemselections. Similarly to screenshot 200 described with reference to FIG.2, each item panel 930 includes an image of an item and item adjustmentbutton 240.

In the present embodiment, each item panel 930 also includes acloset-add button 922 configured to add the selected item to the closet.As described previously, selecting an item designates the selected itemas the reference item in the subsequent refinement process. If the useractivates closet-add button 922, the selected item is added to thecloset, which is a list of selected items provided to facilitate reviewat a later time. The closet functions similarly to a shoping cart,without the purchasing features. The user can view the items in thecloset by activating closet button 906.

A user can activate attribute drop-boxes 920 to refine the search, inwhich case the items shown in the plurality of item panels 930 may bereferred to as a first set of items. Selecting one of the items or anattribute to change results in presentation of a second set of items, asdescribed with reference to FIG. 13 and screenshot 970. Alternatively,activation of DYOD button 904 enables a user to design her own dress, aprocess which will be described with reference to FIGS. 10-13.

FIG. 10 illustrates a screenshot 940 including a first set ofsubcategory choices 942. As described below, a user may select asubcategory choice to refine the search. A subcategory may be based onone or more attributes. A vector comprising the attributes may beconstructed to refine the search based on matching or similarity.Matching occurs when corresponding attributes match, and may be referredto as filtering. For example, for the attribute “dress shape”, all itemshaving the attributes that define a particular dress shape may beidentified by matching the defining attributes. If the definingattribute is a short and loose dress, than only short and loose dresseswill be a match. This can be accomplished by finding items whoseattribute values corresponding to the defining attributes are equal tothe values of the defining attributes for the selected, or reference,item. By contrast, similarity occurs when scores computed by multiplyingthe constructed vector by the item vectors satisfy a similaritycriteria. For example, similarity may be determined if the scores exceeda certain value or are ranked highly, which would indicate a degree ofsimilarity that can be predetermined. Thus, it is likely that similaritems will include matching items and also items which do not match. Forexample, if the defining attribute is a short and loose dress, a dressthat is very loose and neither long nor short may be highly ranked andtherefore be considered similar, even though it is not short. FIG. 11illustrates a screenshot 950 including a second set of subcategorychoices 952, i.e. colors. Additional subcategories may be used to narrowthe search.

FIG. 12 illustrates a screenshot 960 including images of a first set 966of items and attribute drop-boxes 962. The images were selected byrefining the plurality items to only include items similar to items inthe first and second subcategories. In a variation of the presentembodiment, the items are selected by inclusively filtering items havingattributes matching corresponding attributes of the first and secondsubcategories or by exclusively filtering items having attributes notmatching corresponding attributes of the first and second subcategories.A user can select any of the attributes represented by attributedrop-boxes 962 to further refine the design. Any of the attributedrop-boxes 962 can be coded to refine the search based on matching orsimilarity. The user may also select one of the images as a referenceitem. The attributes of the reference item are then used to identifyimages of a second set of items. The attributes of the reference itemmay be combined with the attributes of the first and secondsubcategories. For example, a vector including attributes of the firstand second subcategories, and additional attributes distinguishing thereference item from other items in the first set may be constructed toidentify the second set. The refinement process may be repeated by theuser.

FIG. 13 illustrates a screenshot 970 including images of a second set972 of items and attribute drop-boxes 976. The image of the referenceitem selected from screenshot 960 is also shown. The refinement processmay be continued by the user by selecting an image from second set 972or any attributes from attribute drop-boxes 976. A purchase button 978is also provided, which when activated links the page to the site of thevendor of the selected item.

A variation of the present embodiment will now be described withreference to a flowchart 1000 depicted in FIG. 14. The method isimplemented by a processing device according to processing instructionsembedded in one or more non-transitory computer readable medium. Theprocessing instructions may be comprised, at least in part, bycommunication module 132, database interface module 134, user interfacemodule 136, and processing module 138. The method begins at 1002, withestablishing an internet connection between the processing device and auser device. The method continues at 1004, with accessing a database ofitems and item attributes.

The method continues at 1010, with transmitting to the user deviceimages of a first subset of the items and user interface instructionsstructured to render the images of the first subset on the user device.Transmitting is responsive to the user accessing server apparatus 102,which the user may do with an internet browser. In another variation, auser device application, is served by server apparatus 102 and the userdevice application includes the rendering instructions and otherinstructions structured to perform the functions of the user interfaceinstructions.

The method continues at 1020, with receiving via the internet connectiona change indication selected by a user of the user device, the changeindication including at least one of an attribute selection and areference item selected from the first subset.

The method continues at 1022, with computing an item score for each ofthe items based on the item's attributes and the change indication,responsive to receiving the change indication. In one example, computingan item score includes multiplying a vector corresponding to the item'sattributes to a change vector correspnding to the change indication.

The method continues at 1024, with forming, based on the item scores, asecond subset of the items. In one example, forming a second subset ofthe items includes selecting the items with the highest scores. Inanother example, forming a second subset of the items includes:comparing the attributes of the items to the attributes corresponding tothe change indication; and selecting items based on the comparison.

The method continues at 1030, with serving user interface instructionsstructured to render images of the second subset of the items on theuser device. In one example, steps 1020-1030 implement a“click-to-change” feature, so that when the user “clicks” the image ofan item, a drop-box for an attribute, or another “change” object on theuser device, images of the second set of items, representing arefinement over the first set of items.

Embodiments of the refinement method and system have been disclosed. Theembodiments include features which may be combined to build variationsof the disclosed embodiments. For example, the “click-to-change” featuremay be introduced before or after the “design your own dress” feature.Furthermore, attributes may be presented in any manner, with or separatefrom the display of sets of items, and the attribute selection objectsmay be coded to find similarities or matches, on an attribute byattribute basis. Advantageously, a user may navigate the entire set ofitems and iteratively find a subset of the items in an efficient manner.

In a further embodiment, a search refinement method, executable at leastin part by a processing device according to processing instructionsembedded in one or more non-transitory computer readable medium,comprises: accessing a recommendation set of items having itemattributes; receiving from a user an indication of a reference item, thereference item having reference item attributes; computing item scoresfor each of the items based on the item attributes and the referenceitem attributes; ranking the items based on the item scores; and servinginstructions for rendering images of at least a subset of the items on auser device, the at least a subset of the items selected according tothe ranking of the items; responsive to the serving instructions forrendering images of at least a subset of the items on a user device,receiving an item attribute selection from the user; re-computing itemscores for each of the items based on the item attributes, the itemattribute selection and the reference item attributes; re-ranking theitems based on the item scores; and serving second instructions forrendering images of at least a second subset of the items on the userdevice, the at least a second subset of the items selected according tothe re-ranking of the items.

In one variation thereof, the method further comprises storing a queryincluding the reference item and the item attribute selection. In oneexample, the method further comprises storing an alert parameter,periodically executing the query, and outputting an alert if the alertparameter is satisfied.

In one variation thereof, computing item scores for each of the items isbased on the item attributes, the reference item attributes, and userpreference data.

In one variation thereof, the reference item is in the recommendationset of items, and receiving from a user an indication of a referenceitem includes receiving a reference item selection corresponding to animage of an item selected by the user.

In one variation thereof, the reference item is not in therecommendation set of items, and the indication is an image of thereference item. The method further comprises receiving the referenceitem attributes before computing item scores for each of the items basedon the item attributes and the reference item attributes.

In one variation thereof, the method further comprises compilinginformation including at least one of the received indication of areference item and the received item attribute selection, and sellingthe information so compiled.

In one variation thereof, the method further comprises storing a queryincluding at least one of the received indication of a reference itemand the received item attribute selection. In one example, the methodfurther comprises automatically running the query and sending messagesbased on query results.

In another embodiment, the search refinement method comprises accessinga recommendation set of items having item attributes; receiving from auser an indication of a reference item, the reference item havingreference item attributes; receiving an item attribute selection fromthe user; computing item scores for each of the items based on the itemattributes, the item attribute selection and the reference itemattributes; ranking the items based on the item scores; and servinginstructions for rendering images of at least a subset of the items onthe user device, the at least a subset of the items selected accordingto the ranking of the items.

Additionally, explicit user preference information may be combined withthe refinement criteria in any of the embodiments described above, sothat scores represent not only the changes indicated by the changeindicator, but also the user's explicit preferences. Explicit userpreferences are elicited by asking better questions. The questions arederived from item preference data. The item preference data isprocessed, for example by principal component analysis, to identifypseudo-independent items, e.g. the principal components. Questions arethen generated based on the pseudo-independent items. For example, aquestion may ask a user to choose one of a few pseudo-independent items.Better data results in better recommendations. Questions that involvechoosing between pseudo-independent items are very efficient, so only afew questions are needed to determine a user's preferences. Therefore,users are less likely to lose interest in answering the questions andparticipating in the process. Even further, weights may be applied basedon demographic information and user characteristics to reach the desiredsubset of items even quicker.

As used herein, an application, algorithm or, processing sequence, is aself consistent sequence of instructions that can be followed to performa particular task. Applications may use data structures for bothinputting information and performing the particular task. Datastructures greatly facilitate data management. Data structures are notthe information content of a memory, rather they represent specificelectronic structural elements which impart a physical organization onthe information stored in memory. More than mere abstraction, the datastructures are specific electrical or magnetic structural elements inmemory which simultaneously represent complex data accurately andprovide increased efficiency in computer operation.

As used herein, the transitional term “comprising”, which is synonymouswith “including”, or “containing”, is inclusive or open-ended and doesnot exclude additional, unspecified elements or method steps. Bycontrast, the transitional term “consisting” is a closed term which doesnot permit addition of unspecified terms. While this disclosure has beendescribed as having exemplary designs, the present disclosure can befurther modified within the spirit and scope of this disclosure. Thisapplication is therefore intended to cover any variations, uses, oradaptations of the disclosure using its general principles. Further,this application is intended to cover such departures from the presentdisclosure as come within known or customary practice in the art towhich this disclosure pertains and which fall within the limits of theappended claims.

1. A search refinement method comprising: by a processing deviceaccording to processing instructions embedded in one or morenon-transitory computer readable medium: establishing an internetconnection between the processing device and a user device; accessing adatabase of items and item attributes; transmitting to the user deviceimages of a first subset of the items and user interface instructionsstructured to render the images on the user device; receiving via theinternet connection a change indication selected by a user of the userdevice, the change indication including at least one of an attributeselection and a reference item selected from the first subset; andresponsive to receiving the change indication, computing an item scorefor each of the items based on the item's attributes and the changeindication; forming, based on the item scores, a second subset of theitems; and serving user interface instructions structured to renderimages of the second subset of the items on the user device.
 2. A methodas in claim 1, wherein computing an item score includes multiplying avector corresponding to the item's attributes to a change vectorcorrespnding to the change indication.
 3. A method as in claim 3,wherein forming a second subset of the items includes selecting theitems with the highest scores.
 4. A method as in claim 1, whereinforming a second subset of the items includes: comparing the attributesof the items to the attributes corresponding to the change indication;and selecting items based on the comparison.
 5. A method as in claim 1,further comprising: before serving user interface instructionsstructured to render images of a first subset of the items: serving userinterface instructions structured to render images of a first set ofsubcategory choices, each subcategory choice in the first set ofsubcategory choices having attributes; receiving via the internetconnection an indication of a subcategory choice selected from the firstset of subcategory choices by the user of the user device; and includingin the first subset items with attributes similar to attributes of thesubcategory choice, the similar items including items with matchingattributes and items with non-matching attributes; and excluding fromthe first subset items with attributes dissimilar to the subcategorychoice.
 6. A method as in claim 5, further comprising: computing itemscores for each of the items based on the item's attributes and thesubcategory choice; and identifying similar and dissimilar items usingthe item scores.
 7. A method as in claim 1, further comprising:receiving via the internet connection an indication of a filtering facetselected by the user of the user device; if the filtering facet isinclusive, including in one of the first subset and the second subsetonly items matching corresponding attributes of the filtering facet; andif the filtering facet is exclusive, including in one of the firstsubset and the second subset only items not matching correspondingattributes of the filtering facet.
 8. A method as in claim 1, furthercomprising storing a query including the change indication.
 9. A methodas in claim 2, further comprising storing an alert parameter,periodically executing the query, and outputting an alert if the alertparameter is satisfied.
 10. A method as in claim 1, further comprisingcompiling information including the change indication, and selling theinformation so compiled.
 11. A search refinement method comprising: by aprocessing device according to processing instructions embedded in oneor more non-transitory computer readable medium: accessing arecommendation set of items having item attributes; receiving from auser an indication of a reference item, the reference item havingreference item attributes; receiving an item attribute selection fromthe user; computing item scores for each of the items based on the itemattributes, the item attribute selection and the reference itemattributes; ranking the items based on the item scores; and serving userinterface instructions for rendering images of at least a subset of theitems on the user device, the at least a subset of the items selectedaccording to the ranking of the items.
 12. A search refinement systemcomprising: a database of items and item attributes; user interfaceinstructions operable in a user device and structured to cause the userdevice to receive images of a first subset of the items and of a secondsubset of the items; to present the images; and to transmit a changeindication selected by a user of the user device, the change indicationincluding at least one of an attribute selection and a reference itemselected from the first subset; and a server apparatus including aprocessing device, one or more non-transitory computer readable medium,and a plurality of modules including: a communication module structuredto establish an internet connection between the processing device and auser device, to transmit the images of the first subset of items and ofthe second subset of items; and to receive the change indication; adatabase interface module structured to access the database of items anditem attributes; a user interface module structured to generate the userinterface instructions; and a processing module structured to compute anitem score for each of the items based on the item's attributes and thechange indication; and to form, based on the item scores, the secondsubset of the items.
 13. A system as in claim 12, wherein the processingmodule computes the item score by multiplying a vector corresponding tothe item's attributes to a change vector corresponding to the changeindication.
 14. A system as in claim 13, wherein the processing moduleforms the second subset by selecting the items with the highest scores.15. A system as in claim 12, wherein the processing module forms thesecond subset by comparing the attributes of the items to the attributescorresponding to the change indication; and selecting items based on thecomparison.
 16. A system as in claim 12, wherein the user interfaceinstructions are structured to present images of a first set ofsubcategory choices, each subcategory choice in the first set ofsubcategory choices having attributes; and to transmit via the internetconnection an indication of a subcategory choice selected from the firstset of subcategory choices by the user of the user device; and whereinthe processing module is structured to include in the first subset itemswith attributes similar to attributes of the subcategory choice, thesimilar items including items with matching attributes and items withnon-matching attributes; and to exclude from the first subset items withattributes dissimilar to the subcategory choice.
 17. A system as inclaim 16, wherein the processing module is structured to compute itemscores for each of the items based on the item's attributes and thesubcategory choice; and to identify similar and dissimilar items usingthe item scores.
 18. A system as in claim 12, wherein the user interfaceinstructions are structured to transmit via the internet connection anindication of a filtering facet selected by the user of the user device;and wherein the processing module is structured to if the filteringfacet is inclusive, include in one of the first subset and the secondsubset only items matching corresponding attributes of the filteringfacet; and if the filtering facet is exclusive, include in one of thefirst subset and the second subset only items not matching correspondingattributes of the filtering facet.